Hyrje
Kur duam te ndertojme faqe komplekse dhe jo thjesht faqe statike, do te na duhet shpesh te kombinojme HTML me PHP per te perftuar rezultatet qe nevojiten. Kjo mund te duket e cuditshme pasi PHP dhe HTML jane dy gjuhe komplet te ndryshme, ku njera ekzekutohet ne server, ndersa tjetra interpretohet nga brouseri, por nuk eshte rasti per tu habitur pasi PHP-ja eshte krijuar e tille qe ta kete sa me te lehte nderveprimin e me dokumentet HTML. PHP-ja mund te shkruhet direkt mbi kodin HTML, mjafton ta nisim me nje etikete hapese <?php
dhe ta mbyllim me nje etikete mbyllese ?>
. Kur nje vizitor hap nje faqe te caktuar, serveri proceson kodin e PHP-se dhe pasi ekzekutimi i kodit te PHP-se ka perfunduar, serveri dergon outputin (jo kodin PHP, por ate cfare eshte prodhuar nga kodi) tek brouseri i vizitorit.
Nje skript ne PHP mund te trajtohet si faqe HTML, me disa pjese kodi PHP te vendosura ne pozicione te ndryshme te faqes. Cdo gje ne skriptin e PHP-se qe nuk eshte i perfshire ndermjet etiketave <?php
dhe ?>
, injorohet nga kompiluesi i PHP-se dhe kalohet direkt ne pergjigjen qe do te ktheje serveri tek brouseri i vizitorit.
<!-- Emri i skedarit: index.php -->
<html>
<head></head>
<body class="page_bg">
Pershendetje, sot eshte data <?php echo date('Y-m-d'); ?>.
</body>
</html>
Rezultati ne brouser do te jete: Pershendetje, sot eshte data 2016-01-06
. Ne kete rast e vetmja pjese qe procesohet nga kompiluesi i PHP-se ne server eshte kodi ndermjet etiketave <?php
dhe ?>
, pra echo date('Y-m-d');
i cili jep si output daten aktuale. Ajo cfare ndodh realisht eshte:
- Vizitori ben nje kerkese ne server per te aksesuar faqen e mesiperme (duke kerkuar ne brouser URL-ne e kesaj faqeje)
- Serveri kalon faqen e kerkuar (ne kete rast
index.php
) te procesohet nga kompiluesi i PHP-se - Kompiluesi i PHP-se i merr rreshtat e faqes me radhe
- Rreshtat te cilat nuk ndodhen brenda etiketave
<?php
dhe?>
injorohen nga kompiluesi duke i kthyer menjehere si pergjigje tek brouseri i vizitorit - Deri ne momentin qe kompiluesi dallon etiketen
<?php
, i gjithe kodi HTML kthehet si pergjigje ne brouserin e vizitorit pa asnje ndryshim - Pasi dallon etiketen hapese
<?php
, kompiluesi fillon ekzekutimin e kodit PHP qe ndodhet ne vazhdim te kesaj etikete - Kompiluesi nuk e kthen kodin e PHP-se si tekst, por kthen outputin qe del pas ekzekutimit te PHP-se, pra ne kete rast nuk do te ktheje tekstin
echo date('Y-m-d');
por do te ktheje tekstin2016-01-06
. - Me pas kompiluesi dallon etiketen mbyllese
?>
dhe perfundon ekzekutimin e PHP-se - Tekstin qe vjen pas etiketes mbyllese, kompiluesi e injoron dhe e dergon menjehere ne brouserin e vizitorit ashtu sic eshte, pa ndryshuar asgje.
- Ky varg veprimesh vazhdon deri ne momentin qe e gjithe permbajtja e faqes eshte derguar tek brouseri i vizitorit
Nje nder rastet e perdorimit te PHP-se ne HTML eshte perseritja e blloqeve te kodit HTML. P.sh. ne rast se duam te ndertojme ne menyre dinamike nje liste <ul><li>
, mund te veprojme si me poshte:
<html>
<head></head>
<body>
<ul>
<?php for ($i=1; $i<=5; $i++) { ?>
<li>Menu Item <?php echo $i; ?></li>
<?php } ?>
</ul>
</body>
</html>
Pas ekzekutimit te PHP-se, kodi i HTML-se qe do te kthehet si pergjigje ne brouserin e vizitorit do te jete si me poshte:
<html>
<head></head>
<body>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
<li>Menu Item 3</li>
<li>Menu Item 4</li>
<li>Menu Item 5</li>
</ul>
</body>
</html>
Pas ekzekutimit te ciklit for
, blloku <li>Menu Item <?php echo $i; ?></li>
do te perseritet aq here sa perseritjet e ciklit for
. Gjate perseritjes, brenda etiketes <li>
ekziston kod PHP keshtu qe edhe ai do te ekzekutohet, pra echo $i;
do te printoje numrin e ciklit aktual. Gjate printimit te $i
(i cili inicializohet tek trupi i for
), formohen tekstet Menu Item 1
, Menu Item 2
e keshtu me radhe.
Ne brouser do te na shfaqet lista:
- Menu Item 1
- Menu Item 2
- Menu Item 3
- Menu Item 4
- Menu Item 5
Ne shume raste, te dhenat do te na ofrohen ne koleksione array multidimensionale, ku do te perdorim ciklin foreach
per ti shfaqur tek vizitori. Le te marrim nje shembull:
// Kemi nje array me persona
$persons = array(
array(
"emri" => "Alban Afmeti",
"mosha" => "25"
),
array(
"emri" => "Arber Lami",
"mosha" => "26"
),
array(
"emri" => "Xhulian Sadiku",
"mosha" => "22"
),
);
<html>
<head></head>
<body>
<h2>Lista e personave:</h2>
<div>
<?php foreach ($persons as $person) { ?>
<p>
<label>EMRI: <?php echo $person['emri']; ?></label>
<label>MOSHA: <?php echo $person['mosha']; ?></label>
</p>
<?php } ?>
</div>
</body>
</html>
<!-- printon nje hapesire. -->
Kemi perdorur ciklin foreach
, ku iteron nje liste me persona. Array eshte multidimensional, pra nje array qe permban tre array te tjere associative
me celesa emri
dhe mosha
. Ne pjesen foreach ($persons as $person)
kalohet me radhe nga cdo element i array-t prind, ku perkohesisht elementi ruhet ne variablin $person
. Gjate perseritjes, variabli $person
do te mbaje elementin e array-t ne nje cast te caktuar te kohes. Pra, $person
do te permbaje p.sh. array("emri" => "Alban Afmeti", "mosha" => "25")
i cili eshte element i array-t $persons
. Ne momentin qe variabli i perkohshem $person
merr elementin e radhes, ekzekutohet blloku i ciklit, ku printohen emri dhe mosha duke perdorur variablin $person
.
Pas ekzekutimit te kodit PHP, pergjigja qe do te kthehet nga serveri per tek kompjuteri i vizitorit do te permbaje kodin HTML te meposhtem:
<html>
<head></head>
<body>
<h2>Lista e personave:</h2>
<div>
<p>
<label>EMRI: Alban Afmeti</label>
<label>MOSHA: 25</label>
</p>
<p>
<label>EMRI: Arber Lami</label>
<label>MOSHA: 26</label>
</p>
<p>
<label>EMRI: Xhulian Sadiku</label>
<label>MOSHA: 22</label>
</p>
</div>
</body>
</html>
<!-- printon nje hapesire. -->
Ne menyre qe te ndertojme nje faqe komplekse do te na duhet te perdorim shpeshhere PHP-ne per te gjeneruar kode HTML, si ne rastin e mesiperm. Kjo gje behet per shkak se ne shume raste, kodi i HTML-se nqs. shkruhet ne menyre statike del shume i madh, dhe jo gjithmone eshte e ditur nga ne se cfare blloqesh do te printohen. Te dhenat e nje faqeje web mund te ruhen ne sisteme per menaxhimin e te dhenave te quajtura ndryshe baza te dhenash, te cilat i ruajne te dhenat ne menyre shume te menaxhueshme. Ne te shumten e rasteve, eshte e nevojshme terheqja e ketyre te dhenave nga baza e te dhenave dhe gjenerimi i blloqeve HTML per t'i shfaqur keto te dhena tek nje vizitor i faqes. Ndaj, ne seksionet ne vijim do te mesojme menyren sesi mund te terheqim te dhena nga baza e te dhenave, si mund te gjenerojme blloqe HTML, dhe si ti shfaqim ata tek vizitoret.